#include "Renderer/texture.h"

#include "Renderer/renderer.h"
#include "Platform/OpenGL/openGLTexture2D.h"
#include "Platform/OpenGL/openGLTextureCube.h"

namespace CC {

	Texture2D* Texture2D::Create(uint32_t width, uint32_t height)
	{
		return new OpenGLTexture2D(width, height);
	}

	Texture2D* Texture2D::Create(const std::string& path)
	{
		return new OpenGLTexture2D(path);
	}

	Texture2D* Texture2D::Create(const Font& font)
	{
		return new OpenGLTexture2D(font);
	}

	Texture2D* Texture2D::Create(const std::string& path, unsigned char* data, int width, int height, int channels, TextureType type)
	{
		return new OpenGLTexture2D(path, data, width, height, channels, type);
	}

    TextureCube* TextureCube::Create(const std::string& path)
    {
        return new OpenGLTextureCube(path);
    }

}